
import mom from "moment"
export default {
	
	
	/**
	 console.log(moment(new Date()).format('YYYY'))
	 let day = moment("2021-04-06 17:08:59")//
	 let now = moment() //当前时间
	 console.log(day.second())//获取时间中的秒数
	 console.log(day.minute())//获取分钟
	 console.log(day.hour())//获取时
	 console.log(day.date())//获取日（一个月中的第几天）
	 console.log(day.day())//获取星期
	 console.log(day.month()) //获取月份，注意：月份是从0开始的
	 console.log(day.year())//获取年 
	 */
	
	//获取相对时间的类型
	/**
	 *   0:同一小时内  1:今天  2:昨天  3:本周  4:本月  5:今年  6:去年或者更早    
	 */
	getRelativeTimeType(moment){
		let now = mom();
		for(let i = 0;i<this.predicates.length;i++){
			let p = this.predicates[i];
			if(p.predicate(now,moment)){
				return i;
			}
		}
		return -1;
	},
	/**
	 断言函数集合，在这里判断时间是否符合某某条件，返回真假值
	 断言函数参数： now : 当前时间   moment : 要进行判断的时间
	 断言函数返回值：true 或者 false
	
	注意: 断言是有顺序的，当第一个断言函数返回真，那么其余的都不会继续执行
		 所以判断范围较小的应该放在前面，例如：判断是否为今天的断言函数，要放在是否为本周的断言函数之前
	 */
	predicates:[ 
		{
			predicate:function(now,moment){//判断是否同一小时内
				//两个时间的年月日时都相等，返回真
				if(now.hour() == moment.hour() && now.date() == moment.date() && now.month() == moment.month() && now.year() == moment.year()){
					return true;
				}
				return false;
			}
		},
		{
			predicate:function(now,moment){//判断是否为今天
				//两个时间的年月日都相等，返回真
				if(now.date() == moment.date() && now.month() == moment.month() && now.year() == moment.year()){
					return true;
				}
				return false;
			}
		},
		{
			predicate:function(now,moment){//判断是否为昨天
				//两个时间的年月日都相等并且 当前时间的日期 - 另一个时间等于1
				if(now.month() == moment.month() && now.year() == moment.year()){
					if(now.date() - moment.date() == 1){
						return true;
					}
				}
				return false;
			}
		},
		{
			//获取符合中国的week值，因为国外星期日才算一周的开始
			getWeek(moment){
				if(moment.day() == 0){ //0是星期日
					return moment.week() - 1;
				}else{
					return moment.week();
				}
			},
			predicate:function(now,moment){//判断是否为本周
				//判断星期值是否一致
				if(now.year() == moment.year() && this.getWeek(now) == this.getWeek(moment)){
					return true;
				}
				return false;
			}
		},
		{
			predicate:function(now,moment){//判断是否为本月
				if(now.month() == moment.month() && now.year() == moment.year()){
					return true;
				}
				return false;
			}
		},
		{
			predicate:function(now,moment){//判断是否为今年
				if(now.year() == moment.year()){
					return true;
				}
				return false;
			}
		}
	]
	
}